虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

串行<b>同步</b>

  • TLV1544与TMS320VC5402通过串行口连接

    TLV1544与TMS320VC5402通过串行口连接,此时,A/D转换芯片作为从设备,DSP提供帧同步和输入/输出时钟信号。TLV1544与DSP之间数据交换的时序图如图3所示。 开始时, 为高电平(芯片处于非激活状态),DATA IN和I/OCLK无效,DATAOUT处于高阻状态。当串行接口使CS变低(激活),芯片开始工作,I/OCLK和DATAIN能使DATA OUT不再处于高阻状态。DSP通过I/OCLK引脚提供输入/输出时钟8序列,当由DSP提供的帧同步脉冲到来后,芯片从DATA IN接收4 b通道选择地址,同时从DATAOUT送出的前一次转换的结果,由DSP串行接收。I/OCLK接收DSP送出的输入序列长度为10~16个时钟周期。前4个有效时钟周期,将从DATAIN输入的4 b输入数据装载到输入数据寄存器,选择所需的模拟通道。接下来的6个时钟周期提供模拟输入采样的控制时间。模拟输入的采样在前10个I/O时钟序列后停止。第10个时钟沿(确切的I/O时钟边缘,即上升沿或下降沿,取决于操作的模式选择)将EOC变低,转换开始。

    标签: 1544 5402 TLV 320

    上传时间: 2014-12-05

    上传用户:yepeng139

  • 串行编程器源程序(Keil C语言)

    串行编程器源程序(Keil C语言)//FID=01:AT89C2051系列编程器//实现编程的读,写,擦等细节//AT89C2051的特殊处:给XTAL一个脉冲,地址计数加1;P1的引脚排列与AT89C51相反,需要用函数转换#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引脚排列相反#define C2051_P3_0  P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//编程前的准备工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//编程结束后的工作,设置合适的引脚电平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//从P0口获得数据{ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//转换并设置P0口的数据{ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//读特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//写器件{//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //写一个单元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效验:循环读,直到读出与写入的数相同 {  nTimeOut++;  if(nTimeOut>1000)//超时了  {   return 0;  } } C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//读器件{ BYTE Data;//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 //读一个单元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一个脉冲指向下一个单元//----------------------------------------------------------------------------- return Data;} void Lock01()//写锁定位{ InitPro01();//先设置成编程状态//----------------------------------------------------------------------------- //根据器件的DataSheet,设置相应的编程控制信号 if(ComBuf[2]>=1)//ComBuf[2]为锁定位 {  C2051_P3_3=1;  C2051_P3_4=1;  C2051_P3_5=1;  C2051_P3_7=1;  Delay_us(20);  SetVpp12V();  Delay_us(20);  C2051_P3_2=0;  Delay_us(20);  C2051_P3_2=1;  Delay_us(20);  SetVpp5V(); } if(ComBuf[2]>=2) {  C2051_P3_3=1;  C2051_P3_4=1;  C2051_P3_5=0;  C2051_P3_7=0;  Delay_us(20);  SetVpp12V();  Delay_us(20);  C2051_P3_2=0;  Delay_us(20);  C2051_P3_2=1;  Delay_us(20);  SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//设置pw中的函数指针,让主程序可以调用上面的函数{ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}

    标签: Keil 串行 C语言 编程器

    上传时间: 2013-11-12

    上传用户:gut1234567

  • 采用高速串行收发器Rocket I/O实现数据率为2.5 G

    摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。

    标签: Rocket 2.5 高速串行 收发器

    上传时间: 2013-11-06

    上传用户:smallfish

  • 采用高速串行收发器Rocket I/O实现数据率为2.5 G

    摘要: 串行传输技术具有更高的传输速率和更低的设计成本, 已成为业界首选, 被广泛应用于高速通信领域。提出了一种新的高速串行传输接口的设计方案, 改进了Aurora 协议数据帧格式定义的弊端, 并采用高速串行收发器Rocket I/O, 实现数据率为2.5 Gbps的高速串行传输。关键词: 高速串行传输; Rocket I/O; Aurora 协议 为促使FPGA 芯片与串行传输技术更好地结合以满足市场需求, Xilinx 公司适时推出了内嵌高速串行收发器RocketI/O 的Virtex II Pro 系列FPGA 和可升级的小型链路层协议———Aurora 协议。Rocket I/O支持从622 Mbps 至3.125 Gbps的全双工传输速率, 还具有8 B/10 B 编解码、时钟生成及恢复等功能, 可以理想地适用于芯片之间或背板的高速串行数据传输。Aurora 协议是为专有上层协议或行业标准的上层协议提供透明接口的第一款串行互连协议, 可用于高速线性通路之间的点到点串行数据传输, 同时其可扩展的带宽, 为系统设计人员提供了所需要的灵活性[4]。但该协议帧格式的定义存在弊端,会导致系统资源的浪费。本文提出的设计方案可以改进Aurora 协议的固有缺陷,提高系统性能, 实现数据率为2.5 Gbps 的高速串行传输, 具有良好的可行性和广阔的应用前景。

    标签: Rocket 2.5 高速串行 收发器

    上传时间: 2013-10-13

    上传用户:lml1234lml

  • 下面我们根据8251A芯片的使用体会对其在串行同步方式下的通信原理及应用进行着重介绍。在开始发送或接收之前

    下面我们根据8251A芯片的使用体会对其在串行同步方式下的通信原理及应用进行着重介绍。在开始发送或接收之前,8251A必须装入一组由CPU 产生的控制字。

    标签: 8251A 芯片 串行同步 方式

    上传时间: 2015-04-08

    上传用户:frank1234

  • 本程序是用于通用同步和异步串行接收器和转发器(USART)

    本程序是用于通用同步和异步串行接收器和转发器(USART),使用中断方式异步接收和发送数据通信源的程序文件。

    标签: 程序 异步串行 接收器 转发器

    上传时间: 2015-04-15

    上传用户:cooran

  • 通过多通道串-并转换器将多个同步串行数据流转换为并行数据

    通过多通道串-并转换器将多个同步串行数据流转换为并行数据

    标签: 多通道 同步串行 转换器 数据流

    上传时间: 2013-12-25

    上传用户:z754970244

  • 同步串行数据发送电路SSDT的基本功能是将并行数据转换成串行数据并进行同步发送。系统写入和读出时序完全兼容Intel8086时序。 系统以同步信号开始连续发送四个字节

    同步串行数据发送电路SSDT的基本功能是将并行数据转换成串行数据并进行同步发送。系统写入和读出时序完全兼容Intel8086时序。 系统以同步信号开始连续发送四个字节,在发送中出现5个1时插入一个0,在四个数据发送结束而下一次同步没有开始之前,发送7FH,这时中间不需要插入零

    标签: Intel SSDT 8086 发送

    上传时间: 2014-01-09

    上传用户:koulian

  • 同步串行数据发送电路SSDT的基本功能是将并行数据转换成串行数据并进行同步发送。系统写入和读出时序完全兼容Intel8086时序。 系统以同步信号开始连续发送四个字节

    同步串行数据发送电路SSDT的基本功能是将并行数据转换成串行数据并进行同步发送。系统写入和读出时序完全兼容Intel8086时序。 系统以同步信号开始连续发送四个字节,在发送中出现5个1时插入一个0,在四个数据发送结束而下一次同步没有开始之前,发送7FH,这时中间不需要插入零

    标签: Intel SSDT 8086 发送

    上传时间: 2014-01-16

    上传用户:许小华

  • 单片机RS232/RS485串行发送实验(双机通讯)。 实验步骤: (1)

    单片机RS232/RS485串行发送实验(双机通讯)。 实验步骤: (1),准备两台598K实验机,确定1号机为发送,2号机为接收; (2),当作RS232接口实验时,1号机和2号机的P3.0和P3.1交叉相连,且两机共地; (3),当作RS485接口实验时,1号机和2号机的A、B作对应连接,同时1,2号机的R/TEN接P1.0, P3.0接R0, P3.1接DI。 (4),先运行2号机,键入[27]-->[EV]使2号机处于接收状态P。,后运行1号机[26]-->[EV]使1号机处于发送状态,P。会闪烁,在1号机键盘上按动数字键,在2号机的数码管上应显示对应的数字键值。

    标签: RS 232 485 实验

    上传时间: 2015-11-27

    上传用户:thinode